//
//  CClog.h
//  CCFC_IPHONE
//
//  Created by  xuchen(陈旭)， xichen(陈曦)， qq：511272827 on 10-10-28.
//  Copyright 2010 cc_team. All rights reserved.
//
#ifndef	CC_LOG
#define	CC_LOG

#include "CCAll.h"

#include <stdio.h>

#ifdef	__OBJC__
#include <Foundation/Foundation.h>
#endif

#ifdef	CPP_MACRO
#include <iostream>
#endif

#include "CCCommon.h"

//打印日志

#ifdef __OBJC__
//详细的日志：包括代码所在文件、行数
#define LOG_DETAIL(str)		NSLog(@"filename: %s line: %d %@", __FILE__, __LINE__, (str))
#endif

#ifdef __OBJC__
//#define	LOG(str)			NSLog(@"%@", (str))
//#define	LOG_CSTR(str)		printf("%s", (str))
//#define	LOG_CSTR_ENDL(str)	printf("%s\n", (str))

#define	LOG(str, ...)		NSLog(@str, ##__VA_ARGS__)
#define	COUT_ENDL(str)		NSLog(@"%@", @str)
#endif	//__OBJC__

#ifdef __STDC__
#define	C_LOG(str, ...)				printf(str, ##__VA_ARGS__)
#define	C_LOG_ENDL(str, ...)		printf(str"\n", ##__VA_ARGS__)
#endif	//__STDC__

#ifdef __cplusplus
#define	CPP_LOG(str)		std::cout << (str);
#define	CPP_LOG_ENDL(str)	std::cout << (str) << std::endl;
#ifndef	OBJC_MACRO
#define	COUT_ENDL(str)		std::cout << (str) << std::endl;
#endif	//OBJC_MACRO
#endif	//__cplusplus

#ifdef OBJC_MACRO
// 输出UIView的rect信息宏
#define	LOG_VIEW_RECT(view)	LOG(#view"'s x:%f, y:%f, width:%f, height:%f", \
							GET_VIEW_X(view), GET_VIEW_Y(view), \
							GET_VIEW_WIDTH(view), GET_VIEW_HEIGHT(view))

// 日志打印进入某函数
#define	LOG_ENTER_FUNC(func)	LOG("enter function "#func)
// 日志打印离开某函数
#define	LOG_LEAVE_FUNC(func)	LOG("leave function "#func)

// 成功、失败
#define	LOG_SUCCESS()			LOG("Successfully!")
#define	LOG_FAILED()			LOG("Failed!")
#endif	//OBJC_MACRO

#endif	//CC_LOG



